package exprarbre;

public class ASAOperateurTernaire extends ASAExpr {

    private ASAExpr e1, e2, e3;

    public ASAOperateurTernaire(ASAExpr e1, ASAExpr e2, ASAExpr e3) {
        this.e1 = e1;
        this.e2 = e2;
        this.e3 = e3;
    }

    @Override
    public ASAExpr getExpr1() {
        return e1;
    }

    @Override
    public ASAExpr getExpr2() {
        if (e1.evalue() != 0) {
            return e2;
        } else {
            return e3;
        }
    }

    @Override
    public int evalue() {
        if (e1.evalue() != 0) {
            return e2.evalue();
        } else {
            return e3.evalue();
        }
    }

    @Override
    public ASAExpr simplifie() {
        ASAExpr se1 = e1.simplifie();
        ASAExpr se2 = e2.simplifie();
        ASAExpr se3 = e3.simplifie();

        return new ASAOperateurTernaire(se1, se2, se3);
    }
}